<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 传统面向对象   继承
        // [1,2,3]
        // ... 有两种用法 reset(将多个movies收集到一个数组中，展开运算符 将一个数组展开)  
        class MovieCollection extends Array{
            constructor(name,...items){// reset
                super(...items);// 父类的构造函数 展开运算符
                this.name=name;
            }
            add(movie){
                this.push(movie);
            }
            topRated(limit=10){ // 默认值
                return this.sort((a,b)=>b.stars-a.stars).slice(0,limit);
            }
        }
        const movies=new MovieCollection(`Wes\s Fav Movies`,
            {name:'Bee Movie',stars:10},
            {name:'Star Wars Trek',stars:1},
            {name:'Virgin Suicides',stars:7},
            {name:'King of the Road',stars:8}
        )
        movies.add({name:'战狼',stars:9});
        console.log(movies.topRated(3));
    </script>
</body>
</html>